package it.unicam.cs.cosy.bioshape.core.collisionresponse;

import it.unicam.cs.cosy.bioshape.core.components.EntityPair;

/**
 * Interface for the calculation of the response to a collision. Defines the
 * concept of collision resolution in which just <i>two</i> {@code Entity}
 * objects are involved.
 * 
 * @author Federico Buti
 */
public interface CollisionResponder {

	/**
	 * Resolves the collision and update the velocities of the two involved
	 * {@code Entity} objects.
	 * 
	 * @param pair
	 *            Set of two {@code Entity} objects with information about the
	 *            collision occurred among them.
	 */
	void resolveElastically(EntityPair pair);

	/**
	 * Resolves the collision and update the velocities of the two involved
	 * {@code Entity} objects.
	 * 
	 * @param pair
	 *            Set of two {@code Entity} objects with information about the
	 *            collision occurred among them.
	 */
	void resolveInelastically(EntityPair pair);
}
